import { createApp } from 'vue';
import { registerGlobComp } from '@/components/registerGlobComp';
import { setupRouterGuard } from '@/router/guard';
import { initGlobalErrorHandling, vueErrorHandler } from '@/utils/errorHandler';
import '@/utils/debugErrorHandler'; // 加载调试工具
import App from './App.vue';
import { registerGlobDirective } from './directive'; // directive
import { registerGlobProperties } from './plugins'; // plugins
import router, { setupRouter } from './router';
import { setupStore } from './store';
import 'uno.css';
import 'virtual:svg-icons-register';

async function bootstrap() {
  const app = createApp(App);

  // 初始化全局错误处理
  initGlobalErrorHandling();

  // 注册 Vue 错误处理器
  app.config.errorHandler = vueErrorHandler;

  // 全局组件挂载
  registerGlobComp(app);
  // 注册指令挂载
  registerGlobDirective(app);
  // 挂载路由配置
  setupRouter(app);
  // 路由拦截
  setupRouterGuard(router);
  // 挂载🍍挂载
  setupStore(app);
  // 全局方法挂载
  registerGlobProperties(app);

  app.mount('#app');
}
// 使用 void 操作符明确标记忽略 Promise

bootstrap();
